/*
* Copyright 2010 Pavel Kozhin 
*
* Licensed under the Apache License, Version 2.0 (the "License"); 
* you may not use this file except in compliance with the License. 
* You may obtain a copy of the License at 
* 
* http://www.apache.org/licenses/LICENSE-2.0
* 
* Unless required by applicable law or agreed to in writing, software 
* distributed  under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
* See the License for the specific language governing permissions and 
* limitations under the License.
*
* Author: Pavel Kozhin.
*/

package org.bookmarksframework.core
{
	import mx.core.IFlexDisplayObject;
	import mx.core.IMXMLObject;
	
	[DefaultProperty("children")]
	public class Fragments implements IMXMLObject
	{
		public function initialized(document:Object, id:String):void
		{
			var host:IFlexDisplayObject = document as IFlexDisplayObject;
			
			if (!host)
				throw new Error("Host should implement IFlexDisplayObject.");
			
			var fragments:Array = children;
			var fragment:IFragment;
			
			if (fragments && fragments.length)
			{
				for (var i:int = 0; i < fragments.length; ++i)
				{
					fragment = fragments[i] as IFragment;
					
					if (fragment)
					{
						fragment.initialize(host);
					}
				}
			}
		}
		
		private var _children:Array;

		[ArrayElementType("org.bookmarksframework.core.IFragment")]
		public function get children():Array
		{
			return _children;
		}

		public function set children(value:Array):void
		{
			_children = value;
		}

	}
}